#include <stdio.h>
#include <string.h>
#include <errno.h>

struct S
{
    char arr[10];
    int age;
    float score;
};

int main()
{
    struct S s = {"zhangsan", 20, 55.5f};
    struct S tmp = {0};
    char buf[100] = {0};
    sprintf(buf, "%s %d %f", s.arr, s.age, s.score);
    printf("字符串%s\n", buf);//"zhangsan 20 55.500000"字符串
    sscanf(buf, "%s %d %f", tmp.arr, &(tmp.age), &(tmp.score));//以字符串中的空格为间断点
    printf("字符串%s 整形%d 浮点型%f\n", tmp.arr, tmp.age, tmp.score);
    return 0;
}

//scanf是针对标准输入的格式化输入语句
//printf是针对标准输出的格式化输出语句
//fscanf是针对所有输入流的格式化输入语句
//fprintf是针对所有输出流的格式化输出语句
//sscanf从一个字符串中转换出一个格式化的数据
//sprintf把一个格式化的数据写到字符串中，本质是把一个格式化的数据转换成字符串